package com.guigu.www.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
@TableName("m_design_procedure_details")
public class DesignProcedureDetails {
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;             //序号
    @TableField("PARENT_ID")
    private Integer parentid;       //父级序号
    @TableField("DETAILS_NUMBER")
    private Integer detailsnumber;   //工序序号
    @TableField("PROCEDURE_ID")
    private String procedureid;     //工序编号
    @TableField("PROCEDURE_NAME")
    private String procedurename;       //工序名称
    @TableField("LABOUR_HOUR_AMOUNT")
    private Double labourhouramount;    //工时数
    @TableField("PROCEDURE_DESCRIBE")
    private String proceduredescribe;   //工序描述
    @TableField("AMOUNT_UNIT")
    private String amountunit;          //单位
    @TableField("COST_PRICE")
    private Double costprice;           //单位工时成本
    private Double subtotal;            //工时成本小计
    @TableField("MODULE_SUBTOTAL")
    private Double modulesubtotal;      //物料成本小计
    private String register;            //登记人
    @TableField("REGISTER_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date registertime;          //登记时间
    @TableField("DESIGN_MODULE_TAG")
    private String designmoduletag;         //当前工序物料标志  D002-0: 未设计  D002-1: 已设计
    @TableField("DESIGN_MODULE_CHANGE_TAG")
    private String designmodulechangetag;       //当前工序物料变更标志  D003-0: 未变更  D003-0: 已变更

    //工序物料明细组成详情集合
    @TableField(exist = false)
    private List<MDesingProndureModule> detailss;

    //注：
    //1、PARENT_ID与M_DESIGN_PROCEDURE的ID相对应，为外键
    //2、对每一个产品的工序组成而言，第一个工序的DETAILS_NUMBER从1开始，每增加一个工序DETAILS_NUMBER递增1
    //3、SUBTOTAL= LABOUR_HOUR_AMOUNT*COST_PRICE
    //4、MODULE_SUBTOTAL等于该工序所有使用的物料成本小计
    //5、DESIGN_MODULE_TAG、DESIGN_MODULE_CHANGE_TAG控制当前工序的物料设计状态和物料设计变更状态
}
